{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "# 图形出现在Notebook里面而不是窗口\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 一、对连续型特征，可以用哪个函数可视化其分布？（给出你最常用的一个即可），并根据代码运行结果给出示例。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Median value of owner-occupied homes')"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x648 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#df = pd.read_csv(\"boston_housing.csv\")\n",
    "hw4_df = pd.read_csv(\"E:\\\\my work\\\\Boston House Price\\\\boston_housing.csv\")\n",
    "\n",
    "fig = plt.figure(figsize=(16, 9))\n",
    "sns.distplot(hw4_df['MEDV'], bins=50, kde=True)\n",
    "plt.xlabel(\"Median value of owner-occupied homes\", fontsize=16)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由上图可知,可采用seaborn库里面的distplot函数可视化其分布，即直方图，用于对数值型特征进行可视化展示，可直观看出某变量是否符合正态分布的特征\n",
    "\n",
    "- 小提琴图（violinplot）也可用于一个或多个分类变量情况下，连续变量数据的分布并进行了比较，Violinplot还可以用于观察多个数据分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 二、对两个连续型特征，可以用哪个函数得到这两个特征之间的相关性？根据代码运行结果，给出示例。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "采用pandas.DataFrame.corr()求数据表中两两特征之间的协方差系数矩阵，然后通过seaborn.heatmap()，绘制出热力图\n",
    "- heatmap()中的mask参数，是反向的，即为True不显示，用起来有点别扭"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Q4FDW7tPda5FREREpFuq70hP2sLm1UC/RsvZwNqmjYwxRwDXA4daa2tau091rkVEREQk5DrBNzTmADsbY3YE1gB/Bk5v3MAYszfwJHCMtbagLQfVmGsRERH5XW64834OOf7PjD7zb+GOItJm1lo/cDHwCfAL8Lq19mdjzK3GmJPqm90LxAFvGGPmG2Peb+24Xa5ybYwJAAuoGycTAC621s4MbyoREZGea/RxR3L6qSdx3W33hTuKdCFtmYe6o1lrPwI+arLun41uH7Gtx+xynWugylo7BMAYczRwF20YXC4iIiIdY+iQPViTty7cMaSLacNUeV1SVx8WkgCsD3cIERERERHomp3rmPoxL4uAp4HbWmpkjBlvjJlrjJk7adKWLhIVERERkXBwsR3+Ew5dfVjIAcDzxpjdbZNLTptMvdI9P3cQERERkU6lK3auG1hrZxlj0oB0oE3To4iIiIhI+HWCqfg6RFccFtLAGLMr4AGKw51FRESkp5pw092c8dcryF25msNHn8lbH3wS7kgiYdMVK9cxxpj59bcNcI61NhDOQCIiIj3Zvbf8PdwRpAsK15jojtblOtfWWk+4M4iIiIiItKTLda5FREREpOvTPNciIiIiIrJVqlyLiIiISMi5mi1ERERERES2RpVrEREREQm57lm3VuVaRERERKTdqHItIiIiIiHXXee5VuVaRERERKSdqHItIiIiIiGnyrWIiIiIiGyVKtciIiIiEnK2m85zrc61tNm6kSPDHaFNMqZNC3eEVq098LBwR2hVRKwb7ght4vpMuCO0SVd4XXYFi3c9NtwR2mzgoinhjtAt+IqWhztCq2ofvzHcEdok9p8vhTtCj6DOtYiISA8UkdY/3BFa1RU61vK/665jrtW5FhEREZGQs920c60LGkVERERE2okq1yIiIiISct31gkZVrkVERERE2okq1yIiIiISct31gkZVrkVERERE2okq1yIiIiISchpzLSIiIiIiW6XKtYiIiIiEnMZci4iIiIjIVqlyLSIiIiIhp29oFBERERGRrVLlWkIicr/9iL/4YvB4qJo8mY0vv9ysTdTIkcSNHQvW4lu2jLLbbw990E4qav9hJF5ed/42fjCZihdeCdoec9zRJFz0N9zCIgAq33qHjR98BED8heOJPnA4AOX/fYHqz7/skIwRQ/cj7sJLMI5D1ZTJVL3W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\n",
      "text/plain": [
       "<Figure size 936x648 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data_corr = hw4_df.corr()\n",
    "# 得到相关系数的绝对值\n",
    "data_corr = data_corr.abs()\n",
    "\n",
    "plt.subplots(figsize=(13, 9))\n",
    "#通常认为相关系数的绝对值大于0.5的特征为强相关\n",
    "# Mask unimportant features,突出重要信息\n",
    "#sns.heatmap(data_corr,annot=True)\n",
    "sns.heatmap(data_corr, mask=data_corr<0.5, cbar=True, annot=True)\n",
    "\n",
    "#plt.savefig(\"house_coor.png\" )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 三、如果发现特征之间有较强的相关性，在选择线性回归模型时应采取什么措施？"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如果特征之间高度相关，可考虑进行PCA降维（特征层面）或加正则项（模型层面）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 四、当采用代正则项的模型以及采用随机梯度下降优化算法时，需要对输入（连续型）特征进行去量纲预处理。课程代码给出了用标准化（StandardScaler）的结果，请改成最小最大缩放（MinMaxScaler）去量纲，并重新训练最小二乘线性回归、岭回归和Lasso模型。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Develop Kit\\Anaconda3_2019\\lib\\site-packages\\sklearn\\preprocessing\\data.py:334: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by MinMaxScaler.\n",
      "  return self.partial_fit(X, y)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.preprocessing import MinMaxScaler\n",
    "\n",
    "# 从hw4_df数据集中分离出特征X和输出y\n",
    "y = hw4_df['MEDV']\n",
    "X = hw4_df.drop('MEDV', axis=1)\n",
    "# 特征名称，用于后续显示权重系数对应的特征\n",
    "feat_names = X.columns\n",
    "# 对特征和输出进行初始化声明\n",
    "mms_y = MinMaxScaler()\n",
    "mms_X = MinMaxScaler()\n",
    "\n",
    "# 分别对训练和测试数据的特征以及目标值进行最小最大缩放处理\n",
    "# 对训练数据，先调用fit方法训练模型，得到模型参数,然后对训练数据和测试数据进行transform\n",
    "# sklearn支持fit_transform()将两个步骤合二为一\n",
    "y = mms_y.fit_transform(y.values.reshape(-1, 1)) #Series→DataFrame→fit_transform()→numpy.ndarray\n",
    "X = mms_X.fit_transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CRIM</th>\n",
       "      <th>ZN</th>\n",
       "      <th>INDUS</th>\n",
       "      <th>CHAS</th>\n",
       "      <th>NOX</th>\n",
       "      <th>RM</th>\n",
       "      <th>AGE</th>\n",
       "      <th>DIS</th>\n",
       "      <th>RAD</th>\n",
       "      <th>TAX</th>\n",
       "      <th>PTRATIO</th>\n",
       "      <th>B</th>\n",
       "      <th>LSTAT</th>\n",
       "      <th>MEDV</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.067815</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.314815</td>\n",
       "      <td>0.577505</td>\n",
       "      <td>0.641607</td>\n",
       "      <td>0.269203</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.208015</td>\n",
       "      <td>0.3</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.089680</td>\n",
       "      <td>0.422222</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.000236</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.242302</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.172840</td>\n",
       "      <td>0.547998</td>\n",
       "      <td>0.782698</td>\n",
       "      <td>0.348962</td>\n",
       "      <td>0.043478</td>\n",
       "      <td>0.104962</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.204470</td>\n",
       "      <td>0.368889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.000236</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.242302</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.172840</td>\n",
       "      <td>0.694386</td>\n",
       "      <td>0.599382</td>\n",
       "      <td>0.348962</td>\n",
       "      <td>0.043478</td>\n",
       "      <td>0.104962</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.989737</td>\n",
       "      <td>0.063466</td>\n",
       "      <td>0.660000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.000293</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.063050</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.150206</td>\n",
       "      <td>0.658555</td>\n",
       "      <td>0.441813</td>\n",
       "      <td>0.448545</td>\n",
       "      <td>0.086957</td>\n",
       "      <td>0.066794</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.994276</td>\n",
       "      <td>0.033389</td>\n",
       "      <td>0.631111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.000705</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.063050</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.150206</td>\n",
       "      <td>0.687105</td>\n",
       "      <td>0.528321</td>\n",
       "      <td>0.448545</td>\n",
       "      <td>0.086957</td>\n",
       "      <td>0.066794</td>\n",
       "      <td>0.6</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.099338</td>\n",
       "      <td>0.693333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       CRIM    ZN     INDUS  CHAS       NOX        RM       AGE       DIS  \\\n",
       "0  0.000000  0.18  0.067815   0.0  0.314815  0.577505  0.641607  0.269203   \n",
       "1  0.000236  0.00  0.242302   0.0  0.172840  0.547998  0.782698  0.348962   \n",
       "2  0.000236  0.00  0.242302   0.0  0.172840  0.694386  0.599382  0.348962   \n",
       "3  0.000293  0.00  0.063050   0.0  0.150206  0.658555  0.441813  0.448545   \n",
       "4  0.000705  0.00  0.063050   0.0  0.150206  0.687105  0.528321  0.448545   \n",
       "\n",
       "        RAD       TAX  PTRATIO         B     LSTAT      MEDV  \n",
       "0  0.000000  0.208015      0.3  1.000000  0.089680  0.422222  \n",
       "1  0.043478  0.104962      0.5  1.000000  0.204470  0.368889  \n",
       "2  0.043478  0.104962      0.5  0.989737  0.063466  0.660000  \n",
       "3  0.086957  0.066794      0.6  0.994276  0.033389  0.631111  \n",
       "4  0.086957  0.066794      0.6  1.000000  0.099338  0.693333  "
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 保存特征工程的结果到文件，供机器学习模型使用\n",
    "fe_hw4_data = pd.DataFrame(data = X, columns = feat_names, index = hw4_df.index)\n",
    "fe_hw4_data['MEDV'] = y\n",
    "\n",
    "#fe_data.to_csv('FE_boston_housing_第四周基础作业.csv', index=False)\n",
    "fe_hw4_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将数据分割训练数据和测试数据\n",
    "from sklearn.model_selection import train_test_split\n",
    "# 随机采样20%的数据构建测试样本，其余作为训练样本\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33, test_size=0.2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### OLS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集(train)在线性回归模型的得分为0.745145\n",
      "测试集(test)在线性回归模型的得分为0.690296\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import r2_score\n",
    "from sklearn.linear_model import LinearRegression\n",
    "# 1.初始化\n",
    "lr = LinearRegression()\n",
    "# 2. 求得训练集X的均值，方差，最大值，最小值,这些训练集X固有的属性。\n",
    "lr.fit(X_train, y_train)\n",
    "\n",
    "y_train_pred_lr = lr.predict(X_train)\n",
    "y_test_pred_lr = lr.predict(X_test)\n",
    "\n",
    "#训练集\n",
    "print(\"训练集(train)在线性回归模型的得分为%.6f\" %r2_score(y_train, y_train_pred_lr))\n",
    "#测试集\n",
    "print(\"测试集(test)在线性回归模型的得分为%.6f\" %r2_score(y_test, y_test_pred_lr))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 岭回归 (L2正则)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集(train)在岭回归模型的得分为0.745081\n",
      "测试集(test)在岭回归模型的得分为0.692915\n"
     ]
    }
   ],
   "source": [
    "#岭回归／L2正则\n",
    "#class sklearn.linear_model.RidgeCV(alphas=(0.1, 1.0, 10.0), fit_intercept=True, \n",
    "#                                  normalize=False, scoring=None, cv=None, gcv_mode=None, \n",
    "#                                  store_cv_values=False)\n",
    "from sklearn.linear_model import RidgeCV\n",
    "\n",
    "hyper_param = [0.1, 1, 10, 100]\n",
    "#n_alphas = 20\n",
    "#alphas = np.logspace(-5,2,n_alphas)\n",
    "\n",
    "ridge = RidgeCV(alphas=hyper_param, store_cv_values=True)\n",
    "\n",
    "ridge.fit(X_train, y_train)\n",
    "\n",
    "y_train_pred_ridge = ridge.predict(X_train)\n",
    "y_test_pred_ridge = ridge.predict(X_test)\n",
    "\n",
    "print(\"训练集(train)在岭回归模型的得分为%f\" %r2_score(y_train, y_train_pred_ridge))\n",
    "print(\"测试集(test)在岭回归模型的得分为%f\" %r2_score(y_test, y_test_pred_ridge))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZgAAAEKCAYAAAAvlUMdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xl8VdW5//HPk4SAzDIjU0CQeahGEK22DihaFQdasbZor17a2x+/3t72qlhLba39Kba3tYPtvTi0YL1qDVJxqrN1AiQgEAICARMIQQjznJDk+f1xdtpjTMiBZGefJN/363VeZ++1117nWeckebLWHo65OyIiIvUtJeoARESkaVKCERGRUCjBiIhIKJRgREQkFEowIiISCiUYEREJhRKMiIiEQglGRERCoQQjIiKhSIs6gCh16dLFMzIyog5DRKRRWbp06Q5371pbvWadYDIyMsjOzo46DBGRRsXMChKppykyEREJhRKMiIiEQglGRERCoQQjIiKhUIIREZFQKMGIiEgolGBERCQUSjAiIs1IRYVzz/Oryd9xMPTXUoIREWlGHl9cwMPvfszij3eG/lpKMCIizcTmXYe496WPOHdQF76S2Sf011OCERFpBtydH8zPwYB7rxmJmYX+mkowIiLNwF+yN/PO+h3MuGwovU9u3SCvqQQjItLEfbL3CPc8v4Zx/Ttxw9i+Dfa6SjAiIk2Yu3Pn/ByOVlQw69pRpKSEPzVWSQlGRKQJ++vyLbz+0XZuvWQIGV3aNOhrK8GIiDRR2/cf4ccLVnN6347cdHZGg7++EoyISBN117O5HD5azv2TR5PagFNjlZRgRESaoBdWbuWlVZ/wHxedxsBubSOJQQlGRKSJ2XWwlB89u4qRvTrwr+f2jyyOtMheWUREQvGT53LZd+Qoj395HGmp0Y0jQn1lM5toZmvNLM/MZlSzvaWZPRVsX2xmGUH5BDNbamY5wfMFQXk7M1se99hhZg8E224ys+K4bbeE2TcRkWT06uptPLu8iP9z/kCG9GgfaSyhjWDMLBV4EJgAFAJLzGyBu6+Oq3YzsNvdB5rZFGAWcB2wA7jC3YvMbATwMtDL3fcDY+JeYynwTFx7T7n79LD6JCKSzPYeOsqd83MY0qMd3/7iwKjDCXUEMxbIc/eN7l4KPAlMqlJnEjAnWM4CLjQzc/cP3b0oKM8FWplZy/gdzWwQ0A14J7QeiIg0Ive8sJqdB0v5+eTRpKdFf4g9zAh6AZvj1guDsmrruHsZsBfoXKXOtcCH7l5Spfx6YiMWj69rZivNLMvMwr9VqIhIkvj7umKeXlrIN88bwMjeHaIOBwg3wVR30rUfTx0zG05s2uyb1dSbAjwRt/4ckOHuo4DX+OfI6NMvaDbNzLLNLLu4uPgY4YuINA77jxzljnkrGditLd+5cFDU4fxDmAmmEIgfRfQGimqqY2ZpQAdgV7DeG5gPTHX3DfE7mdloIM3dl1aWufvOuFHOQ8AZ1QXl7rPdPdPdM7t27XqifRMRSRr3vfQRW/cd4f7Jo2jVIjXqcP4hzASzBBhkZv3NLJ3YiGNBlToLgBuD5cnAG+7uZtYReAG4w93fq6bt6/n06AUz6xm3eiWwph76ICKS1N7fsIPHF2/i5nP6c3rfk6MO51NCO4vM3cvMbDqxM8BSgUfdPdfM7gay3X0B8AjwmJnlERu5TAl2nw4MBGaa2cyg7GJ33x4sfwW4rMpLfsfMrgTKgrZuCqlrIiJJ4VBpGTPm5ZDRuTXfv3hw1OF8hn36GHnzkpmZ6dnZ2VGHISJyQn7yXC5/fC+fp6adxbgBVc+PCo+ZLXX3zNrqRX8em4iIHLfs/F386f18po7v16DJ5XgowYiINDJHjpZzW9ZKTulwErdPHBJ1ODXSvchERBqZX722jo07DvLnm8fRpmXy/hnXCEZEpBFZsXkPD729kSln9uHzg7pEHc4xKcGIiDQSJWXl3Jq1gm7tWvGDLw2NOpxaJe/YSkREPuXBN/JYt+0Aj96USftWLaIOp1YawYiINAK5RXv5/VsbuOZzvbhgSPeow0mIEoyISJI7Wl7BbVkr6dg6nR9dMSzqcBKmKTIRkSQ3++2N5Bbt47+/djodW6dHHU7CNIIREUli67bt59evredLo3oycUTP2ndIIkowIiJJqrzCuTVrJW1apvKTK4dHHc5x0xSZiEiSevTdj1mxeQ+/njKGLm1b1r5DktEIRkQkCW0sPsAvXlnLhGHduXL0KVGHc0KUYEREkkxFhXP7vJW0TEvhnqtGYFbdl/8mPyUYEZEk89iiApbk72bm5cPo3r5V1OGcMCUYEZEksnnXIWb97SPOO60rk8/oHXU4daIEIyKSJNydGc+sJMWMe68Z2WinxiopwYiIJIknl2zmvbyd3HHZEHp1PCnqcOpMCUZEJAkU7TnMz15Yw/gBnbn+zL5Rh1MvlGBERCLm7vxgfg7lFc6sa0eRktK4p8YqKcGIiETsmWVbeGttMbdNHEzfzq2jDqfehJpgzGyima01szwzm1HN9pZm9lSwfbGZZQTlE8xsqZnlBM8XxO3zVtDm8uDR7VhtiYgks+37jvCT53LJ7HcyN47PiDqcehVagjGzVOBB4FJgGHC9mVW9z/TNwG53Hwj8CpgVlO8ArnD3kcCNwGNV9rvB3ccEj+21tCUikpTcnR/+dRUlZRXMmtx0psYqhTmCGQvkuftGdy8FngQmVakzCZgTLGcBF5qZufuH7l4UlOcCrcysthvxVNtWnXshIhKS51du5ZXV2/jehNM4tWvbqMOpd2EmmF7A5rj1wqCs2jruXgbsBTpXqXMt8KG7l8SV/TGYHpsZl0QSaUtEJCnsPFDCXQtyGd27Azd/vn/U4YQizART3ejBj6eOmQ0nNtX1zbjtNwRTZ+cGj68fx+thZtPMLNvMsouLi48RvohIeH783Gr2HznK/ZNHk5baNM+3CrNXhUCfuPXeQFFNdcwsDegA7ArWewPzganuvqFyB3ffEjzvB/6X2FTcMduK5+6z3T3T3TO7du1axy6KiBy/l3M/4bkVRXzngkEM7tEu6nBCE2aCWQIMMrP+ZpYOTAEWVKmzgNhBfIDJwBvu7mbWEXgBuMPd36usbGZpZtYlWG4BXA6sOlZbIfRLROSE7TlUyg//uophPdvzrS+eGnU4oQrtC8fcvczMpgMvA6nAo+6ea2Z3A9nuvgB4BHjMzPKIjTamBLtPBwYCM81sZlB2MXAQeDlILqnAa8BDwfaa2hIRSRo/fX4Nuw6W8sebzqRFE50aq2TN+Z/8zMxMz87OjjoMEWkm3ly7nW/8cQnTzx/If14yOOpwTpiZLXX3zNrqNe30KSKSJPYdOcoPnslhULe2/N8LB0YdToNQghERaQD3vvgR2/Yd4f7Jo2iZlhp1OA1CCUZEJGTv5e3giQ82ccu5A/hc35OjDqfBKMGIiIToYEkZt89bSf8ubfjehNOiDqdBhXYWmYiIwM9fXsuWPYf5yzfH06pF85gaq6QRjIhISD74eBd/ej+fG8dncGZGp6jDaXBKMCIiIThcWs7t81bSp9NJ3Dax8Z6SXBeaIhMRCcGvXlvHxzsO8vgt42id3jz/1GoEIyJSzz7ctJuH39nI9WP7cs7ALlGHExklGBGRelRSVs5tWSvp3r4Vd1w2JOpwItU8x20iIiH57et5rN9+gD9+40zat2oRdTiR0ghGRKSerNqylz/8fQPXnt6b8wd3izqcyCnBiIjUg6PlFdyatZJObdKZefnQqMNJCpoiExGpB394awNrtu5j9tfPoGPr9KjDSQoawYiI1NHaT/bz2zfWc8XoU7h4eI+ow0kaSjAiInVQVl7BbVkraNeqBT++YljU4SQVTZGJiNTBw+9+zIrCvfz2+s/RuW3LqMNJKhrBiIicoA3FB/jlq+u4ZHh3Lh/VM+pwko4SjIjICSivcG7LWslJLVL56aQRmFnUISUdJRgRkRMwd2E+Swt286PLh9Gtfauow0lKSjAiIsepYOdB7v/bWs4f3JVrTu8VdThJK9QEY2YTzWytmeWZ2Yxqtrc0s6eC7YvNLCMon2BmS80sJ3i+IChvbWYvmNlHZpZrZvfFtXWTmRWb2fLgcUuYfROR5qmiwpkxL4e0FOP/XTNSU2PHEFqCMbNU4EHgUmAYcL2ZVT2H72Zgt7sPBH4FzArKdwBXuPtI4Ebgsbh9fuHuQ4DPAeeY2aVx255y9zHB4+H675WINHdPLNnEwo07+cGXhtKzw0lRh5PUwhzBjAXy3H2ju5cCTwKTqtSZBMwJlrOAC83M3P1Ddy8KynOBVmbW0t0PufubAEGby4DeIfZBROQftuw5zL0vfsQ5Azsz5cw+UYeT9MJMML2AzXHrhUFZtXXcvQzYC3SuUuda4EN3L4kvNLOOwBXA6/F1zWylmWWZWbWfvplNM7NsM8suLi4+3j6JSDPl7tzxTA4V7tx3zShNjSUgzART3bvvx1PHzIYTmzb75qd2MksDngB+4+4bg+LngAx3HwW8xj9HRp9u3H22u2e6e2bXrl0T6oiISNbSQt5eV8ztE4fQp1PrqMNpFMJMMIVA/CiiN1BUU50gaXQAdgXrvYH5wFR331Blv9nAend/oLLA3XfGjXIeAs6op36ISDO3bd8Rfvr8asZmdOLrZ/WLOpxGI8wEswQYZGb9zSwdmAIsqFJnAbGD+ACTgTfc3YPprxeAO9z9vfgdzOweYonou1XK4y+jvRJYU289EZFmy925c/4qSsoqmDV5FCkpmhpLVGj3InP3MjObDrwMpAKPunuumd0NZLv7AuAR4DEzyyM2cpkS7D4dGAjMNLOZQdnFQDpwJ/ARsCyYA/1dcMbYd8zsSqAsaOumsPomIs3HghVFvLZmG3deNpT+XdpEHU6jYu5VD4s0H5mZmZ6dnR11GCKSpHYcKGHCL/9Ov85tmPdvZ5Oq0QsAZrbU3TNrq6cr+UVEanDXs7kcLCnn55NHKbmcACUYEZFqvJSzlRdytvLvFw1iUPd2UYfTKCnBiIhUsftgKTOfzWX4Ke2Zdt6AqMNptPSFYyIiVdz9/Gr2HCpl7r+MpUWq/g8/UXrnRETivL5mG/M/3MK3zx/IsFPaRx1Oo6YEIyIS2Hv4KD+Yn8Pg7u2Yfv7AqMNp9DRFJiISuPfFNRTvL2H21zNJT9P/33Wld1BEBHhnfTFPLtnMtPNOZXSfjlGH0yQowYhIs3egpIwZ83IY0LUN371oUNThNBmaIhORZu/+v31E0d7DPP3N8bRqkRp1OE1GwiMYM/u8mX0jWO5qZv3DC0tEpGEs2riTuQsLuOnsDDIzOkUdTpOSUIIxs7uA24E7gqIWwJ/DCkpEpCEcLi3n9nkr6dupNbdeMjjqcJqcREcwVxO7Bf5BgODrjHXvBBFp1P7rlbUU7DzEfdeOpHW6jhjUt0QTTKnHbrvsAGame1aLSKO2bNNuHnnvY24Y15ezT+0SdThNUqIJ5i9m9j9ARzP7V2JfSfxQeGGJiITnyNFybn16Bad0OIk7LhsadThNVkJjQnf/hZlNAPYBg4EfufuroUYmIhKS37y+ng3FB5nzL2Np21JTY2FJ6J0NpsTecPdXzWwwMNjMWrj70XDDExGpXzmFe/mftzfy5TN684XTukYdTpOW6BTZ20BLM+tFbHrsG8CfwgpKRCQMpWUV3Jq1gs5t0vnhl4ZFHU6Tl2iCMXc/BFwD/Nbdrwb06YhIo/L7t/L46JP9/OzqkXRo3SLqcJq8hBOMmY0HbgBeCMo0cSkijcaarfv43Rt5TBpzChOGdY86nGYh0QTz78AM4Bl3zw2u4n+jtp3MbKKZrTWzPDObUc32lmb2VLB9sZllBOUTzGypmeUEzxfE7XNGUJ5nZr8xMwvKO5nZq2a2Png+OcG+iUgTV1ZewW1ZK+nYugV3XTE86nCajUQTzCGgArjezFYCC4Dzj7WDmaUCDwKXEptOu97Mqk6r3QzsdveBwK+AWUH5DuAKdx8J3Ag8FrfPH4BpwKDgMTEonwG87u6DgNeDdRERZr+zkZwte7l70gg6tUmPOpxmI9FprseB/wRWEUs0iRgL5Ln7RgAzexKYBKyOqzMJ+HGwnAX8zszM3T+Mq5MLtDKzlkAnoL27LwzanAtcBbwUtPXFYJ85wFvEbm8jIs1Y3vb9PPDaei4d0YPLRvaMOpxmJdEEU+zuzx1n272AzXHrhcC4muq4e5mZ7QU6ExvBVLoW+NDdS4Kz2AqrtNkrWO7u7luDtraaWbfjjFdEmpjyCue2rJW0Tk/l7kkjog6n2Uk0wdxlZg8Tm3oqqSx092eOsY9VU+bHU8fMhhObNrv4ONo8JjObRmyKjb59+x7PriLSyPzxvY9ZtmkPD1w3hq7tWkYdTrOTaIL5BjCE2F2UK6fIHDhWgikE+sSt9waKaqhTaGZpQAdgF4CZ9QbmA1PdfUNc/d41tLnNzHoGo5eewPbqgnL32cBsgMzMzONKTiLSeOTvOMgvXlnLhUO6MWnMKVGH0ywlmmBGBwfcj8cSYFBwxtkWYArw1Sp1FhA7iL8QmEzsbgFuZh2JnQ59h7u/V1k5SB77zewsYDEwFfhtlbbuC56fPc54RaSJqKhwbp+3khYpKfzs6pEEJ5tKA0v0LLJF1ZwBdkzuXgZMB14G1gB/CU5xvtvMrgyqPQJ0NrM84Hv888yv6cBAYKaZLQ8elcdU/g14GMgDNhA7wA+xxDLBzNYDE4J1EWmGHl9cwOKPd/HDy4fSo0OrqMNptix2F/5aKpmtAU4FPiZ2DMYAd/dR4YYXrszMTM/Ozo46DBGpR5t3HeKSB97mjH4nM/dfxmr0EgIzW+rumbXVS3SKbGLtVUREouXu/GB+Dgbce42mxqKW6O36C8IORESkrp7OLuSd9Tv46aTh9D65ddThNHuJHoMREUlqn+w9wk9fWM24/p24YVy/qMMRlGBEpAlwd+6cn8PR8gpmXTuKlBRNjSUDJRgRafSeXV7E6x9t5z8vHkxGlzZRhyMBJRgRadS27z/Cj5/L5fS+HfnGOf2jDkfiKMGISKN217O5HCot5/7Jo0nV1FhSUYIRkUbrxZytvLTqE7570SAGdmsbdThShRKMiDRKuw6W8qNnVzGyVwemnTsg6nCkGvraYxFplH7yXC57Dx/lz7eMIy1V/ysnI30qItLovLp6G88uL+L/nD+QIT3aRx2O1EAJRkQalb2Hj3Ln/ByG9GjHt784MOpw5Bg0RSYijco9z69m58FSHrnxTNLT9D9yMtOnIyKNxt/XFfP00kK+ed4ARvbuEHU4UgslGBFpFPYfOcod81Zyatc2fOfCQVGHIwnQFJmINAr3vfQRW/cdIetbZ9OqRWrU4UgCNIIRkaT3/oYdPL54Ezef058z+p0cdTiSICUYEUlqh0rLmDEvh36dW/P9iwdHHY4cB02RiUhS+8XL69i06xBPTjuLk9I1NdaYaAQjIkkrO38Xf3z/Y6aO78dZAzpHHY4cJyUYEUlKR46Wc1vWSk7pcBK3TRwSdThyAkJNMGY20czWmlmemc2oZntLM3sq2L7YzDKC8s5m9qaZHTCz38XVb2dmy+MeO8zsgWDbTWZWHLftljD7JiLheuC19WzccZD7rh1J25aazW+MQvvUzCwVeBCYABQCS8xsgbuvjqt2M7Db3Qea2RRgFnAdcASYCYwIHgC4+35gTNxrLAWeiWvvKXefHlKXRKSBrNi8h9lvb+C6zD6cO6hr1OHICQpzBDMWyHP3je5eCjwJTKpSZxIwJ1jOAi40M3P3g+7+LrFEUy0zGwR0A96p/9BFJColZeXcmrWCbu1aceflQ6MOR+ogzATTC9gct14YlFVbx93LgL1Aokfyric2YvG4smvNbKWZZZlZnxMLW0Si9OCbG1i37QA/u3oE7Vu1iDocqYMwE0x1313qJ1CnJlOAJ+LWnwMy3H0U8Br/HBl9+gXNpplZtpllFxcXJ/hSItIQVhft4/dv5nH153px4dDuUYcjdRRmgikE4kcRvYGimuqYWRrQAdhVW8NmNhpIc/ellWXuvtPdS4LVh4AzqtvX3We7e6a7Z3btqrldkWRxtLyCW7NW0LF1OnddMSzqcKQehJlglgCDzKy/maUTG3EsqFJnAXBjsDwZeKPKlFdNrufToxfMrGfc6pXAmhOKWkQiMfvtjeQW7eOeq4bTsXV61OFIPQjtLDJ3LzOz6cDLQCrwqLvnmtndQLa7LwAeAR4zszxiI5cplfubWT7QHkg3s6uAi+POQPsKcFmVl/yOmV0JlAVt3RRW30Skfq3ftp9fv7aeL43sycQRPWvfQRoFS2zA0DRlZmZ6dnZ21GGINGvlFc61f3ifgp0HefV7X6BL25ZRhyS1MLOl7p5ZWz1dvSQikXr03Y9ZvnkPv54yRsmlidGtYkQkMh/vOMgvXlnLRUO7c+XoU6IOR+qZEoyIRKKiwrk9ayUt01L42dUjMKvuqgVpzJRgRCQSjy0q4IP8Xcy8fBjd27eKOhwJgRKMiDS4zbsOMetvH3HeaV2ZfEbvqMORkCjBiEiDcndmPLOSFDPuvWakpsaaMCUYEWlQTy7ZzHt5O7njsiH06nhS1OFIiJRgRKTBFO05zM9eWMP4AZ25/sy+UYcjIVOCEZEG4e7cOT+H8grnvmtHkpKiqbGmTglGRBrEM8u28ObaYm69ZDD9OreJOhxpAEowIhK67fuO8JPncsnsdzI3nZ0RdTjSQJRgRCRU7s4P/7qKI2UVzJo8SlNjzYgSjIiE6oWcrbyyehvfm3Aap3ZtG3U40oCUYEQkNDsPlPCjZ3MZ3bsDt3y+f9ThSAPT3ZRFpN4V7j7E44s38eQHmzhQUsb9k88iLVX/zzY3SjAiUi/cnfc37GTO+/m8tmYbABOGdWfaeacyuEe7iKOTKCjBiEidHCgp45llhcx5P58NxQfp1Cadf/viqXx1XD9dqd/MKcGIyAnJ236AxxbmM2/ZFg6UlDG6T0d++ZXRXDayJ61apEYdniQBJRgRSVh5hfP6mm3MXVjAu3k7SE9N4fLRPZk6PoMxfTpGHZ4kGSUYEanVroOlPLVkM39eVMCWPYc5pUMrbr1kMFPO7ENnfc2x1EAJRkRqtLJwD3PeL+C5lUWUllVw9qmdmXn5MC4a2k1nhUmtQk0wZjYR+DWQCjzs7vdV2d4SmAucAewErnP3fDPrDGQBZwJ/cvfpcfu8BfQEDgdFF7v79praCrF7Ik1SSVk5L+ZsZc77BSzfvIfW6alcl9mHqeP7Mai7zgaTxIWWYMwsFXgQmAAUAkvMbIG7r46rdjOw290HmtkUYBZwHXAEmAmMCB5V3eDu2VXKampLRBKwde9hHl+0iSc+2MTOg6UM6NKGH18xjGvO6E37Vi2iDk8aoTBHMGOBPHffCGBmTwKTgPgEMwn4cbCcBfzOzMzdDwLvmtnA43i9mtryE++CSNPm7izauIu5C/N5ZfU2Kty5cEh3bjy7H+ec2kX3DZM6CTPB9AI2x60XAuNqquPuZWa2F+gM7Kil7T+aWTkwD7gnSCIJtWVm04BpAH376guPpHk6WFLG/A+3MHdhPuu2HaBj6xbccm5/vjauH306tY46PGkiwkww1f3rU3U0kUidqm5w9y1m1o5Ygvk6sWMvCbXl7rOB2QCZmZka3UizsrH4AI8tKiAru5D9JWWM6NWe+yeP4srRp+jaFal3YSaYQqBP3HpvoKiGOoVmlgZ0AHYdq1F33xI87zez/yU2FTf3RNoSaQ7KK5y31m5nzsIC3l5XTItU40sjezL17Aw+16cjZpoGk3CEmWCWAIPMrD+wBZgCfLVKnQXAjcBCYDLwxrGOmQSJo6O77zCzFsDlwGsn0pZIU7fnUCl/yd7MY4sK2LzrMN3bt+T7E05jyti+dG2na1ckfKElmOA4yHTgZWKnKT/q7rlmdjeQ7e4LgEeAx8wsj9hoY0rl/maWD7QH0s3sKuBioAB4OUguqcSSy0PBLjW2JdKcrNqyl7kL83l2eRElZRWM69+JOy4dyoRh3Wmha1ekAVlz/ic/MzPTs7Ornu0s0viUllXw0qqtzF1YwNKC3ZzUIpWrT+/F1PH9GNKjfdThSRNjZkvdPbO2erqSX6QR27bvCI8v3sT/Lt7EjgMlZHRuzczLhzH5jN50OEnXrki0lGBEGhl3Z0n+buYszOflVZ9Q7s75g7sxdXw/zhvUVdeuSNJQghFpJA6VlvHs8iLmvJ/PR5/sp32rNL5xTgZfO6sf/Tq3iTo8kc9QghFJcgU7D/LYwgL+kr2ZfUfKGNqzPfddM5JJY3pxUrquXZHkpQQjkoQqKpy/ry9m7vv5vLWumFQzJo7owY1nZ5DZ72RduyKNghKMSBLZe+goTy+NXbtSsPMQXdu15DsXDOKr4/rSvX2rqMMTOS5KMCJJYM3WfcxdWMBfP9zC4aPlZPY7me9fPJiJw3uQnqZrV6RxUoIRicjR8gpeyd3GnIX5fPDxLlqmpXDVmF58fXw/RvTqEHV4InWmBCPSwLbvP8KTH2zm8cUFbNtXQp9OJ3HnZUP5cmZvOrZOjzo8kXqjBCPSANydZZv2MHdhPi/mbOVoufOF07py7zX9+MJp3UjVtSvSBCnBiIToyNFyFiwvYu6ifFZt2Ue7lml8/awMvnZWXwZ0bRt1eCKhUoIRCcHmXYf486ICnsrezJ5DRxncvR0/u3oEV43pRZuW+rWT5kE/6SL1pKLCeTdvB3MX5vP6R9tJMeOS4d2ZOj6Dcf076doVaXaUYETqaN+Ro8xbWshjCwvYuOMgXdqmM/38gXx1XF96djgp6vBEIqMEI3KC1m3bz9yF+TyzbAuHSsv5XN+OPHDdGC4d2YOWabqFi4gSjMhxKCuv4LU125jzfgELN+4kPS2FK0efwtTx/RjVu2PU4YkkFSUYkQTsOFDCU0s28+dFBWzde4ReHU9ixqVD+EpmHzq10bUrItVRghE5huWb9zD3/XyeX7mV0vIKzh3UhbsnjeCCIbp2RaQ2SjAiVRw5Ws4LK7cyd2E+Kwr30rZlGl8d15evndWPgd107YpIopRgRAJb9hzm8UUFPLlkM7sOljKwW1t+Omk4V5/em7a6dkXkuIX6W2NmE4FfA6npsY+AAAAKvUlEQVTAw+5+X5XtLYG5wBnATuA6d883s85AFnAm8Cd3nx7Ubw08DZwKlAPPufuMYNtNwM+BLUHzv3P3h8PsnzR+7s7CDTuZszCfV1dvA2DCsO7cOD6D8ad21rUrInUQWoIxs1TgQWACUAgsMbMF7r46rtrNwG53H2hmU4BZwHXAEWAmMCJ4xPuFu79pZunA62Z2qbu/FGx7qjIZiRzLgZIy5i8rZM7CAvK2H6BTm3S+9YVTueGsfvTqqGtXROpDmCOYsUCeu28EMLMngUlAfIKZBPw4WM4Cfmdm5u4HgXfNbGB8g+5+CHgzWC41s2VA7xD7IE1M3vYD/HlRAVlLCzlQUsao3h34ry+P5kujetKqha5dEalPYSaYXsDmuPVCYFxNddy9zMz2Ap2BHbU1bmYdgSuITcFVutbMzgPWAf/h7pur3VmalfIK5/U125i7sIB383aQnprC5aN6MvXsDMb00bUrImEJM8FUN3ntJ1Dnsw2bpQFPAL+pHCEBzwFPuHuJmX0LmANcUM2+04BpAH379q3tpaQR23Ww9B/XrmzZc5ieHVpx6yWDue7MPnRp2zLq8ESavDATTCHQJ269N1BUQ53CIGl0AHYl0PZsYL27P1BZ4O4747Y/ROx4zme4++xgfzIzM2tNZtL45BTuZc7CfBasKKK0rILxAzoz8/KhXDS0O2mp+vphkYYSZoJZAgwys/7EzuyaAny1Sp0FwI3AQmAy8Ia7H/OPvpndQywR3VKlvKe7bw1WrwTW1LkHScjdcY8N8yqC5YrgLatcjt9GNWVO8By/reIYbeBUxNevqY3jrO9x2yoq+EdZRXVtHKN+Zdnh0nKeXVHEh5v20Do9la9k9mbq+AxO696uAT8hEakUWoIJjqlMB14mdpryo+6ea2Z3A9nuvgB4BHjMzPKIjVymVO5vZvlAeyDdzK4CLgb2AXcCHwHLglNIK09H/o6ZXQmUBW3dFFbf/rJkM7Pf2Rj7w17NH/vKFPmpMgj+wPpnk0N1bUC1yUGObUCXNtx1xTCuPaM37Vu1iDockWbNahkwNGmZmZmenZ193Pu9kvsJzy4vAosdREoxwyx4Bohbrtxmlc9V6hNfB0hJie1XXX2r2mZQ/zNtfKZ+XHvVtREs/CPmFDCqr58SdNCqqV99v//Z1jHbSKB+SnXxx5Wlphhd27b8x3siIuEws6XunllbPV2efAIuHt6Di4f3iDoMEZGkpiOeIiISCiUYEREJhRKMiIiEQglGRERCoQQjIiKhUIIREZFQKMGIiEgolGBERCQUzfpKfjMrBgpOcPcuJPC1Ao2E+pJ8mko/QH1JVnXpSz9371pbpWadYOrCzLITuVVCY6C+JJ+m0g9QX5JVQ/RFU2QiIhIKJRgREQmFEsyJmx11APVIfUk+TaUfoL4kq9D7omMwIiISCo1gREQkFEowCTKzL5tZrplVmFmNZ16Y2UQzW2tmeWY2oyFjTJSZdTKzV81sffB8cg31ys1sefBY0NBx1qS299jMWprZU8H2xWaW0fBRJiaBvtxkZsVxn8Mt1bUTNTN71My2m9mqGrabmf0m6OdKMzu9oWNMVAJ9+aKZ7Y37TH7U0DEmwsz6mNmbZrYm+Nv179XUCfdziX2nuR61PYChwGDgLSCzhjqpwAZgAJAOrACGRR17NXHeD8wIlmcAs2qodyDqWE/kPQa+Dfx3sDwFeCrquOvQl5uIfS145PHW0pfzgNOBVTVsvwx4idiXqJ4FLI465jr05YvA81HHmUA/egKnB8vtgHXV/HyF+rloBJMgd1/j7mtrqTYWyHP3je5eCjwJTAo/uuM2CZgTLM8BroowluOVyHsc378s4EIzS8bvUW4sPy+1cve3gV3HqDIJmOsxi4COZtazYaI7Pgn0pVFw963uvixY3g+sAXpVqRbq56IEU796AZvj1gv57AeaDLq7+1aI/RAC3Wqo18rMss1skZklSxJK5D3+Rx13LwP2Ap0bJLrjk+jPy7XB9EWWmfVpmNDqXWP53UjUeDNbYWYvmdnwqIOpTTBN/DlgcZVNoX4uafXVUFNgZq8BParZdKe7P5tIE9WURXKa3rH6chzN9HX3IjMbALxhZjnuvqF+IjxhibzHSfM51CKROJ8DnnD3EjP7FrGR2QWhR1b/GstnkohlxG6VcsDMLgP+CgyKOKYamVlbYB7wXXffV3VzNbvU2+eiBBPH3S+qYxOFQPx/mL2Bojq2eUKO1Rcz22ZmPd19azAc3l5DG0XB80Yze4vYf0BRJ5hE3uPKOoVmlgZ0IDmnPGrti7vvjFt9CJjVAHGFIWl+N+oq/o+0u79oZr83sy7unnT3KDOzFsSSy+Pu/kw1VUL9XDRFVr+WAIPMrL+ZpRM7wJw0Z1/FWQDcGCzfCHxmdGZmJ5tZy2C5C3AOsLrBIqxZIu9xfP8mA294cEQzydTalyrz4VcSm0dvjBYAU4Ozls4C9lZO0zY2Ztaj8piemY0l9nd057H3anhBjI8Aa9z9lzVUC/dzifpMh8byAK4mlu1LgG3Ay0H5KcCLcfUuI3a2xgZiU2uRx15NXzoDrwPrg+dOQXkm8HCwfDaQQ+zMphzg5qjjPtZ7DNwNXBkstwKeBvKAD4ABUcdch77cC+QGn8ObwJCoY66hH08AW4Gjwe/JzcC3gG8F2w14MOhnDjWciZkMjwT6Mj3uM1kEnB11zDX04/PEprtWAsuDx2UN+bnoSn4REQmFpshERCQUSjAiIhIKJRgREQmFEoyIiIRCCUZEREKhBCNyAszsQB33zwrukHCsOm8d687didapUr+rmf0t0foidaEEI9LAgntXpbr7xoZ+bXcvBraa2TkN/drS/CjBiNRBcAX0z81slZnlmNl1QXlKcAuRXDN73sxeNLPJwW43EHf3BDP7Q3BT0Vwz+0kNr3PAzP7LzJaZ2etm1jVu85fN7AMzW2dm5wb1M8zsnaD+MjM7O67+X4MYREKlBCNSN9cAY4DRwEXAz4Pbu1wDZAAjgVuA8XH7nAMsjVu/090zgVHAF8xsVDWv0wZY5u6nA38H7orblubuY4HvxpVvByYE9a8DfhNXPxs49/i7KnJ8dLNLkbr5PLG7HZcD28zs78CZQfnT7l4BfGJmb8bt0xMojlv/iplNI/b72BMYRuz2HvEqgKeC5T8D8TcurFxeSiypAbQAfmdmY4By4LS4+tuJ3eJIJFRKMCJ1U9MXmR3rC84OE7tfGmbWH/hP4Ex3321mf6rcVov4ezyVBM/l/PN3+j+I3TNvNLGZiiNx9VsFMYiESlNkInXzNnCdmaUGx0XOI3aDzXeJfVFYipl1J/Y1u5XWAAOD5fbAQWBvUO/SGl4nhdidoQG+GrR/LB2ArcEI6uvEvp650mlAtd83L1KfNIIRqZv5xI6vrCA2qrjN3T8xs3nAhcT+kK8j9k2Ce4N9XiCWcF5z9xVm9iGxu/NuBN6r4XUOAsPNbGnQznW1xPV7YJ6ZfZnYXZgPxm07P4hBJFS6m7JISMysrce+9bAzsVHNOUHyOYnYH/1zgmM3ibR1wN3b1lNcbwOT3H13fbQnUhONYETC87yZdQTSgZ+6+ycA7n7YzO4i9t3nmxoyoGAa75dKLtIQNIIREZFQ6CC/iIiEQglGRERCoQQjIiKhUIIREZFQKMGIiEgolGBERCQU/x/+ukf57p4efAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.1\n"
     ]
    }
   ],
   "source": [
    "mse_mean = np.mean(ridge.cv_values_, axis = 0)\n",
    "plt.plot(np.log10(hyper_param), mse_mean.reshape(len(hyper_param),1)) \n",
    "\n",
    "#这是为了标出最佳参数的位置，不是必须\n",
    "#plt.plot(np.log10(ridge.alpha_)*np.ones(3), [0.28, 0.29, 0.30])\n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "print ('alpha is:', ridge.alpha_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Lasso(L1正则)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集(train)在Lasso模型的得分为0.544046\n",
      "测试集(test)在Lasso模型的得分为0.598498\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Develop Kit\\Anaconda3_2019\\lib\\site-packages\\sklearn\\linear_model\\coordinate_descent.py:1109: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "D:\\Develop Kit\\Anaconda3_2019\\lib\\site-packages\\sklearn\\model_selection\\_split.py:2053: FutureWarning: You should specify a value for 'cv' instead of relying on the default value. The default value will change from 3 to 5 in version 0.22.\n",
      "  warnings.warn(CV_WARNING, FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "#### Lasso／L1正则\n",
    "# class sklearn.linear_model.LassoCV(eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, \n",
    "#                                    normalize=False, precompute=’auto’, max_iter=1000, \n",
    "#                                    tol=0.0001, copy_X=True, cv=None, verbose=False, n_jobs=1,\n",
    "#                                    positive=False, random_state=None, selection=’cyclic’)\n",
    "from sklearn.linear_model import LassoCV\n",
    "hyper_param = [0.01, 0.1, 1, 10, 100]\n",
    "#n_alphas = 20\n",
    "#alphas = np.logspace(-5,2,n_alphas)\n",
    "lasso = LassoCV(alphas=hyper_param)\n",
    "lasso.fit(X_train, y_train)\n",
    "y_train_pred_lasso = lasso.predict(X_train)\n",
    "y_test_pred_lasso = lasso.predict(X_test)\n",
    "print(\"训练集(train)在Lasso模型的得分为%f\" %r2_score(y_train, y_train_pred_lasso))\n",
    "print(\"测试集(test)在Lasso模型的得分为%f\" %r2_score(y_test, y_test_pred_lasso))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.01\n"
     ]
    }
   ],
   "source": [
    "mses = np.mean(lasso.mse_path_, axis = 1)\n",
    "plt.plot(np.log10(lasso.alphas_), mses) \n",
    "#plt.plot(np.log10(lasso.alphas_)*np.ones(3), [0.3, 0.4, 1.0])\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()    \n",
    "            \n",
    "print ('alpha is:', lasso.alpha_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 五、代码中给出了岭回归（RidgeCV）和Lasso（LassoCV）超参数（alpha_）调优的过程，请结合两个最佳模型以及最小二乘线性回归模型的结果，给出什么场合应该用岭回归，什么场合用Lasso，什么场合用最小二乘。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最小二乘：根据最小二次的线性回归的求解公式，可知当输入特征存在共线性时，权重矩阵求拟不稳定，导致结果不会很理想，所以最小二次法适用与特征之间相关性不强的数据。而且由于最小二乘与其他两个模型相比未加正则项，只考虑了对训练样本的拟合程度，故在训练集上的结果最好，但容易产生过拟合\n",
    "\n",
    "岭回归：岭回归由于加入了L2正则项，通过alpha参数的调节，可以平衡拟合程度和模型复杂度之间的关系，使得线性回归系数收缩，模型稳定，当输入特征之间存在共线性时使用较好\n",
    "\n",
    "Lasso回归：Lasso也会收缩回归系数，且输入特征之间存在强共线性时，可以使用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
